<?php
/* Copyright (C) 2008 App Tsunami, Inc. */
/* 
 *  This program is free software: you can redistribute it and/or modify 
 *  it under the terms of the GNU General Public License as published by 
 *  the Free Software Foundation, either version 3 of the License, or 
 *  (at your option) any later version. 
 * 
 *  This program is distributed in the hope that it will be useful, 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 *  GNU General Public License for more details. 
 * 
 *  You should have received a copy of the GNU General Public License 
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>. 
 */
/* controllers/CecController.php */
$rDir = str_repeat('../', substr_count($_SERVER['PHP_SELF'],'/')-3);
require_once($rDir.'php/cec/CecApplication.php');
require_once($rDir.'php/cec/CecApplicationConfig.php');
require_once($rDir.'cec/php/CecContext.php');

class CecController {

  protected $context;
  protected $appConfig;

  public function __construct($openDataSource=true) {
    $this->context = new CecContext($openDataSource);
    $this->appConfig = new CecApplicationConfig();
  } // __construct

  public function __destruct() {
    if (!is_null($this->context)) {
      $this->context->close();
      $this->context = null;
    } // if
  } // __destruct

  protected function initMainFrame() {
    $mainFrame = CecApplication::getMainFrame();
    $mainFrame->setContext($this->context);
    return($mainFrame);
  } // initMainFrame

  protected function renderApplication() {
    $ds = $this->context->getDataSource();
    $ds->startDisplay();
    $mainFrame = $this->initMainFrame();
    return($mainFrame->render());
  } // renderApplication

  public function execute() {
    return($this->renderApplication());
  } // execute

} // CecController
?>
